草庐IT

PHP forward_static_call 与 call_user_func

全部标签

c# - 为什么 ReSharper 告诉我 "User.Identity == null"总是错误的?

我的一个ASP.NETMVC中有一个简单的属性Controller类。我以前见过很多次,所以理解消息的意思,但通常它是完全有道理的。然而,事实并非如此。要获取带下划线的语句,User必须NOT为null,因此检查User.Identity没问题。Identity属性是IPrincipalinterface的一部分,并返回一个继承IIdentity的对象.要继承此接口(interface)或与此相关的任何接口(interface),此属性必须是引用类型,因此可能为null,对吗?那么,为什么我心爱的ReSharper会发出呻吟声? 最佳答案

c# - 可以通过 WCF 服务传递 Func<T,bool> 吗?

Func是一个可序列化的类,但是当我尝试将它作为参数通过服务传递时。有人告诉我它“不是已知类型”。我试过解决方案here无济于事。非常感谢... 最佳答案 不,基本上。您也不能传递Expression,因为它与MemberInfo节点对话。最好的选择是谓词的字符串表示。 关于c#-可以通过WCF服务传递Func吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/567316/

c# - 如何从 DOMAIN\user 格式的用户名创建 WindowsIdentity/WindowsPrincipal

WindowsIdentity(string)构造函数要求用户名采用username@domain.com格式。但在我的例子中,我从旧的DOMAIN\user格式的数据库中获取用户名(然后必须检查他们的Windows角色成员身份)。从旧式(sAMAccountName)用户名​​创建WindowsPrincipal的最佳方法是什么? 最佳答案 似乎没有办法在不涉及对ActiveDirectory的查询的情况下转换用户名格式。由于是这种情况,因此无需创建WindowsPrincipal来检查组成员身份,因为这可能需要与AD的另一个连接

c# - 为什么 c# 编译器在某些情况下会发出 newobj/stobj 而不是 'call instance .ctor' 来进行结构初始化

这里是一些用C#编写的测试程序:usingSystem;structFoo{intx;publicFoo(intx){this.x=x;}publicoverridestringToString(){returnx.ToString();}}classProgram{staticvoidPrintFoo(refFoofoo){Console.WriteLine(foo);}staticvoidMain(string[]args){Foofoo1=newFoo(10);Foofoo2=newFoo(20);Console.WriteLine(foo1);PrintFoo(reffoo2)

c# - 从 BinaryExpression 到 Expression<Func<T, bool>>

假设我有类似的东西Expression>left=x=>x.SomeDateProperty;Expression>right=x=>dateTimeConstant;varbinaryExpression=Expression.GreaterThan(left,right);Expression>predicate=x=>x.SomeDateProperty>dateTimeConstant;1)如何用binaryExpression代替最后一行赋值的右手?varpredicate=x=>binaryExpression;不起作用。2)右边的总是一个常量,不一定是DateTime.N

c# - Func<> 的 List<>,具有通用返回类型的编译错误,但为什么呢?

这个问题有点长,所以请耐心等待。我需要在一组字符串和每个字符串对应的通用方法调用之间创建一个映射。但是,我遇到了一个编译问题,下面进行了解释。在我的场景中,我使用的是Dictionary,但问题同样存在于List.为简单起见,我使用List在下面的示例中。考虑这三个类:publicabstractclassMyBase{/*bodyomitted*/}publicclassMyDerived1:MyBase{/*bodyomitted*/}publicclassMyDerived2:MyBase{/*bodyomitted*/}还有一些其他类中的方法:publicclassTest{p

c# - 将 Func<T> 转换为 Func<object>

我想知道如何通过Func至Func方法参数:publicvoidFoo(Funcp)whereT:class{Foo(p);}publicvoidFoo(Funcp){}奇怪的是,它在NET4.0类库中有效,但在Silverlight4类库中无效。实际上我希望它在Silverlight中工作,并且我有像Func这样的输入参数 最佳答案 这样就可以了:publicvoidFoo(Funcp)whereT:class{Funcf=()=>p();Foo(f);} 关于c#-将Func转换为F

c# - WPF 调度程序 {"The calling thread cannot access this object because a different thread owns it."}

首先我需要说我是WPF和C#的菜鸟。应用程序:创建Mandelbrot图像(GUI)在这种情况下,我的调度员工作得很好:privatevoidprogressBarRefresh(){while((con.Progress)尝试使用以下代码执行此操作时,我收到了消息(标题):bmp=BitmapSource.Create(width,height,96,96,pf,null,rawImage,stride);this.Dispatcher.Invoke(DispatcherPriority.Send,newAction(delegate{img.Source=bmp;ViewBox.C

c# - Entity Framework 过滤器 "Expression<Func<T, bool>>"

我正在尝试为EntityFramework列表创建一个过滤方法并更好地理解Expression我有一个这样的测试函数。publicIQueryableFilter(IEnumerablesrc,Expression>pred){returnsrc.AsQueryable().Where(pred);}如果我这样做:context.Table.Filter(e=>e.ID或者这个:context.Table.Filter(e=>e.SubTable.Where(et=>et.ID0&&e.ID一切正常。但是如果我这样做:context.Table.Filter(e=>e.SubTable

c# - 对传递 Expression 与 Func 参数感到困惑

我在理解表达式和函数的工作方式之间的区别时遇到了一些困难。当有人更改方法签名时出现此问题:publicstaticListThingList(FuncaWhere)到publicstaticListThingList(Expression>aWhere)这破坏了我的调用代码。旧的调用代码(有效)如下所示:...objecty=newobject();FuncwhereFunc=(p)=>p==y;things=ThingManager.ThingList(whereFunc);新代码(不起作用)如下所示:...objectx=newobject();Expression>whereEx